axios.defaults.baseURL = "http://localhost:8080"
Vue.prototype.$http = axios;


// 拿到当前页面的url
var url = location.href;    // http://127.0.0.1/about.html

function parseUrl(){
  var obj = {}
  var paramStr = url.split("?")[1];
  if (paramStr) {
    // 如果?后面有值,才处理url中的参数
    var paramArray = paramStr.split("&");
    for (var i = 0; i < paramArray.length; i++) {
      var param = paramArray[i];  // typeId=27
      var key = param.split("=")[0];
      var value = param.split("=")[1];
      // 动态将key和value交给query中的参数
      // 如果不确定要给对象中哪一个属性设置值,就可以通过[]的方式,动态指定对象中的属性名
      obj[key] = value;
    }
  }
  return obj
}
// 定义不需要登陆访问的页面地址
var releaseHtmls = ["index.html","callback.html","binder.html"];

var isRun = false;  // 是否放行
// 默认放行
if(url == "http://127.0.0.1/" || url == "http://localhost/"){
    isRun = true;
}else{
    for (var i=0;i<releaseHtmls.length;i++){
        // 如果url中存在该路径就放行
        if(url.indexOf(releaseHtmls[i]) > -1){
            isRun = true;
            break
        }
    }
}
if(!isRun){
    // 当前是否登陆 如果没有登陆的话才拦截
    var loginUser = JSON.parse(localStorage.getItem("loginUser"));
    if(!loginUser){
        alert("请先登录");
        location.href = "/index.html";
    }
}

// axios请求拦截器:添加请求拦截器，在请求头中加token
axios.interceptors.request.use(
  (config) => {
    // 从localStorage中获取token
    let token = localStorage.getItem('token')

    // 如果token有值,我们就放到请求头里面
    if (token) {
      config.headers.token = token
    }
    return config
  },
  (error) => {
    return Promise.reject(error)
  }
)
// 响应拦截器
axios.interceptors.response.use(
  function (response) {
    //对返回的数据进行操作
    let result = response.data // response.data 就是后端返给我们的数据
    if (!result.success && result.message == 'noLogin') {
      // 说明未登录,被拦截了,那么就要跳回到登陆页面
      location.href = "/index.html";
    }else if(!result.success && result.message == 'noPermission'){
      location.href = "/index.html";
    }
    return response
  },
  function (err) {
    return Promise.reject(err)
  }
)